package com.itheima.demo7tcp4;

import com.itheima.demo6tcp3.ServerReader;

import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.*;

public class ServerDemo {
    public static void main(String[] args) throws Exception {
//        目标：BS架构的服务器端
        System.out.println("服务端启动了");
//        目标：实现TCP通信下的一发一收：服务端开发
//        1、创建一个服务器Socket对象，绑定监听端口
        ServerSocket ss = new ServerSocket(8080);
        ExecutorService pool = new ThreadPoolExecutor(5, 20,10, TimeUnit.SECONDS
        , new ArrayBlockingQueue<>(100), Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy());
        while (true) {
            Socket socket=ss.accept();
            System.out.println("客户"+socket.getPort()+"连接了");
//        把客户端管道交给一个独立的子线程，专门负责接受这个管道的消息
//        把这个客户端管道包装成一个任务交给线程池执行
            pool.execute(new ServerReaderRunnable
                    (socket));
        }
    }
}
